1. Field of the Invention
This invention relates to the field of automated installation of an operating system onto a networked computer. More specifically, the invention includes a method and apparatus to provide personalization parameters so that an operating system can be automatically installed on a computer system configured with the personalization parameters.
2. Description of the Related Art
Installing or migrating updated versions of computer software including applications and operating systems from a network server to individual networked client workstations is commonplace. However, such installation or migration can be relatively labor intensive and complex. This can be especially true in corporate environments where there might be hundreds or even thousands of computers which are part of a network. Accordingly, applications exist to automate, to varying degrees, the installation or migration of operating systems from a network server or host to networked client workstations.
One example of an application for automating installation and/or migration of computer software from a network is referred to under the trade name of Microsoft Systems Management Server(copyright), and is available from Microsoft(copyright) Corporation of Redmond Wash.
Another example of such an application is marketed under the trade name LANDdesk(R) Configuration Manager (xe2x80x9cLCMxe2x80x9d) and is available from Intel Corporation of Hillsboro, Oreg. System components necessary to operate LCM include a console, a server, and one or more workstations. The console includes a server central processing unit (xe2x80x9cCPUxe2x80x9d), a monitor, and a data input device such as a keyboard. The server is interconnected with the console and includes a CPU. Each workstation is interconnected with the server and includes a CPU, a monitor, and keyboard. As used herein, CPU indicates any standard, general or special purpose computing device having a microprocessor; memory, such as a magnetic or optical disk drive, random access memory (xe2x80x9cRAMxe2x80x9d) and read only memory (xe2x80x9cROMxe2x80x9d);bus lines; and inputs and outputs.
To operate LCM, a systems manager loads configuration manager software onto the console. Configurations for operating systems to be deployed over the network are defined and stored in the server memory. These operating systems are referred to as xe2x80x9cservices.xe2x80x9d Operating systems which can be installed using LCM include Windows 95(copyright), Windows 98(copyright), and Windows NT(copyright), each available from Microsoft Corporation. The system administrator also defines configuration manager users (xe2x80x9cCM-usersxe2x80x9d) which, as used herein, indicates a technician or administrator who logs onto a workstation for the purpose of installing an operating system or other software from the network server. A CM-user stands in contrast to an xe2x80x9cend-user,xe2x80x9d which, as used herein, indicates a workstation user for whom a workstation is configured for use in data processing and information exchange. The system administrator assigns services to be configured on client workstations to menus and assigns one of these menus to each CM-user who will be deploying services on the workstations. The files containing the menus and identifying CM-users associated with the menus are stored on the server.
Each client workstation on which an operating system to be automatically installed is configured with xe2x80x9cLANDesk(R) Service Agent,xe2x80x9d (xe2x80x9cLSAxe2x80x9d) also available from Intel Corporation. LSA is firmware which is resident on an ethernet card installed in the workstation. When a user boots a client workstation, LSA interrupts the normal boot module and causes a prompt to appear on the workstation monitor which asks the user if he or she would like to perform a service boot to access configuration services. If the CM-user chooses to perform a service boot, LSA accesses the configuration manager software located in the server which causes a dialog box to appear on the workstation display asking the CM-user to enter a username and password. If the user enters an appropriate username and password, the configuration manager software downloads certain files and programs, which are discussed below in the Detailed Description section, from the server to the workstation. These programs cause the client workstation monitor to display the menu of services which the system administrator assigned to the CM-user logged onto the workstation, and which are available to be downloaded. The CM-user can select from these services and initiate operating system configuration. Details of the above described operation of LCM are included in xe2x80x9cIntel LANDesk(copyright) Configuration Manager Administrator""s Guidexe2x80x9d, Intel Corporation, 1997 which is incorporated by reference in its entirety.
When configuring an operating system, there are a number of parameters that must be uniquely specified for each workstation on the network and other parameters that must be specified only for a sub-group of the total number of client workstations on a network. These parameters are referred to herein as xe2x80x9cpersonalization parameters.xe2x80x9d Such personalization parameters which must generally be uniquely specified for each client on a network can include, among others, user login name, full name, initial password, and IP address. Personalization parameters which can generally be specified for a sub-group of client workstations on a network can include workgroup or domain name, organization name, and product ID.
For a variety of operating systems, specification and configuration of these personalization parameters can be partially achieved through the use of so called xe2x80x9canswer files.xe2x80x9d An answer file is a script file which specifies various settings for operating system installation including full user name, organization name, computer name, product ID, domain name and workgroup name. Generally, answer files are created by a system administrator and reside in memory on the server. The answer files are then accessed by an operating system setup program which is run in the workstation during an operating system deployment to the workstation to at least partially personalize the client workstation. Use of answer files and operating system setup programs is known to those skilled in the art and discussed in detail in xe2x80x9cMicrosoft(copyright) Windows(copyright)95 Resource Kitxe2x80x9d 1995 Microsoft Press, xe2x80x9cMicrosoft(copyright)98 Resource Kitxe2x80x9d 1998 Microsoft Press, ISBN 1-57231-644-6, and Microsoft(copyright) Windows(copyright)NT Workstation Operating System Deployment Guidexe2x80x9d, 1997 Microsoft Corporation, which are incorporated in their entirety by reference.
A second way in which personalization parameters can be configured for an operating system is to use an operating system application programming interface (xe2x80x9cAPIxe2x80x9d). An API is essentially a line of code that can be executed to access the operating system (or other application) to tell the operating system to perform a lower level function, such as assign a certain I/O port to a certain address, or configure the operating system with certain information, such as a drive mapping user login name. Generally, one API can be used to configure an operating system with a single parameter. APIs are useful in operating system configuration because answer files cannot typically be used to completely configure an operating system. Accordingly, to completely personalize an operating system installation, a CM-user would typically manually edit and execute APIs after operating system installation to configure the operating system with personalization parameters not configurable with an answer file. The use of and syntax for Microsoft operating system APIs is detailed in xe2x80x9cMicrosoft(copyright) Visual C++ 6.0 Reference Libraryxe2x80x9d, Microsoft Press, 1998.
However, for at least two reasons, the above described use of answer files and APIs in operating system deployment was relatively time consuming and cumbersome. First, because each individual workstation on a network generally requires at least some unique personalization parameters, for each workstation, an answer file would have to be manually edited and stored by the administrator. Thus, if there were 500 workstations on a network, the administrator would have to generate 500 answer files to even partially automate operating system configuration for workstations on the network. Such manual editing could be disadvantageously time consuming and error prone. Second, as noted above, answer files cannot typically be used to configure all of the personalization parameters of a workstation operating system. For example, an answer file cannot typically configure a logon name or initial password. Thus, these personalization parameters would have to be configured by the CM-user for each client workstation using APIs after deployment of the operating system. This could also be disadvantageously time consuming.
There is a need for improvement in the automated deployment of operating systems over a network. For example, it would be desirable to avoid manual editing of each answer file for an operating system deployment. Also, it would be desirable to avoid the need to create an end-user specific answer file for each work station on the network. It would be further desirable to avoid the need to manually execute APIs to configure an operating system with parameters which cannot be configured using an answer file.
The present invention overcomes the above described disadvantages by providing an economical, high performance and adaptable apparatus and method for providing personalization parameters for an automated operating system installation on a computer system. The computer system can include a memory, a first CPU, and a second CPU interconnected with the first CPU to allow the operating system to be downloaded from the first CPU to the second CPU. The method includes providing both an operating system configuration file and a personalization parameters file in the memory. The operating system configuration file is used by the operating system to configure itself with personalization parameters contained in the file. On a display element of the second CPU, a graphical user interface (xe2x80x9cGUIxe2x80x9d) is displayed which lists the personalization parameters available in the personalization parameters file. The GUI also allows a user to select a plurality of the personalization parameters from the personalization parameters file. The operating system configuration file is edited by an editing module to include at least a first portion of the selected plurality of personalization parameters. In this way, the operating system can install itself configured with the first portion of the selected plurality of personalization parameters.
In another aspect of the method for providing personalization parameters for an automated operating system installation from a first CPU to a second CPU, the computer system is provided with operating system application programming interfaces (xe2x80x9cAPIsxe2x80x9d) each of which is for configuring an operating system with a personalization parameter. After the operating system has installed itself, the operating system APIs are edited to each include one of a second portion of the selected plurality of personalization parameters. The plurality of APIs are executed to configure the operating system with the second portion of the selected plurality of personalization parameters.
Another aspect of the present invention includes an apparatus for automatically providing personalization parameters for a personalized operating system installation in a computer system. The computer system includes a memory, a first CPU, and a second CPU interconnected with the first CPU to allow the operating system to be downloaded from the first CPU to the second CPU, the second CPU also having a display element. The apparatus includes an operating system configuration file for storing personalization parameters with which the operating system configures itself during an installation. The apparatus also includes a personalization parameters file stored in the memory. A GUI is displayed on the display element of the second CPU. The GUI allows a user to select a plurality of the personalization parameters in the personalization parameters file. A first editing module places a first portion of the personalization parameters selected via the GUI from the personalization parameters file into the operating system configuration file. In this way, when the operating system is installed, it configures itself with the first portion of the personalization parameters.
In another aspect of an apparatus for automatically providing personalization parameters for an operating system installation from a first CPU to a second CPU, the apparatus includes a plurality of operating system APIs stored in the memory. Each API is for configuring the operating system with one personalization parameter after installation of the operating system. The apparatus also includes a second editing module and a post-operating system installation module. The second editing module is for placing one of a second portion of the selected personalization parameters from the personalization parameters file into each of the APIs. The post-operating system installation module executes the APIs to configure the operating system with the second portion personalization parameters.
If, for example, the first operating system configuration file is a Microsoft answer file, then the present invention advantageously avoids the need for a system administrator to create an answer file containing end-user specific personalization parameters for each workstation on a network. Rather, the system administrator must only create a single xe2x80x9cgenericxe2x80x9d answer file (that is, an answer file containing parameters that can be used by all the computers on network or a group of computers on a network) and a personalization parameters file. The method and apparatus of the present invention then allows selection of personalization parameters from the personalization parameters file and automatically edits the generic answer file to create a user-specific, updated answer file. The operating system then uses this updated answer file to configure itself during installation.
This can advantageously reduce time required for operating system deployment and reduce errors in such deployment. Additionally, the method and apparatus of the present invention can also provide personalization parameters from the personalization parameters file for post-operating system install configuration. Thus, the need for a CM-user to enter such post-operating system installation configuration information via manually executing individual APIs can be reduced or eliminated. This can also advantageously reduce time and errors in operating system deployment.
Yet another aspect of the present invention includes a computer program product stored on a computer readable medium such as a floppy disk. The product is for use in automatically providing an operating system with personalization parameters to allow the operating system to configure itself therewith. The product includes a first program means to allow a user to populate a personalization parameters file with personalization parameters. A GUI means displays a list of personalization parameters in the personalization parameters file and allows selection of a group of personalization parameters therefrom. A first editing means places at least a portion of the selected group of personalization parameters in an operating system configuration file used by the operating system to configure itself. A second program means is for configuring the operating system with personalization parameters after installation of the operating system. A second editing means allows editing of the second program means to include a second portion of the selected group of personalization parameters.